package com.qf.servlet;

import com.qf.pojo.DtsCategory;
import com.qf.service.DtsCategoryService;
import com.qf.util.ResponseUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import java.util.List;
import java.util.Map;

/**
 * @author Ypl
 * @version V1.0
 * @Project September-mavens
 * @Package com.qf.servlet
 * @Description:
 * @Date 2022/10/22 9:14
 */
@RestController
@SuppressWarnings("all")
@RequestMapping("/admin/category")
public class AdminCategoryController {

    @Autowired
    DtsCategoryService dtsCategoryService;

    /**
     * 商品类目列表
     *  业务分析：
     *  1.如果要删除商品一级类目，那么一级类目所对应的二级类目一级二级类目下的所有的商品都要删除，
     *     删除商品的同时商品的属性，规格，等等都要删除，删除很多表里面的商品信息
     *  2.如果更新商品一级类目的ID，那么所对应的所有的二级类目的以及类目ID也要更新，同样阿里云上面的信息也要删除
     */
    @GetMapping("/list")
    public Object list(@RequestParam(value = "page",defaultValue = "1") Integer page,
                       @RequestParam(value = "limit",defaultValue = "20")Integer limit,
                       @RequestParam(value = "sort",defaultValue = "add_time")String sort,
                       @RequestParam(value = "order",defaultValue = "desc") String order,
                       Integer id,String name){

        Map<String,Object> data = dtsCategoryService.findByL2Page(page,limit,order,sort,id,name);
        return ResponseUtil.ok(data);

    }

    /**
     * 商品类目的一级类目列表
     */
    @RequestMapping("/l1")
    public Object l1(){
        List<Map<String,Object>> data = dtsCategoryService.findByL1List();
        return ResponseUtil.ok(data);
    }

    /**
     * 商品类目的添加
     */
    @PostMapping("/create")
    public Object insert(@RequestBody DtsCategory dtsCategory){
        dtsCategoryService.insert(dtsCategory);
        return ResponseUtil.ok(dtsCategory);
    }

    /**
     * 商品类目的更新
     */
    @PostMapping("/update")
    public Object update (@RequestBody DtsCategory dtsCategory){
        dtsCategoryService.update(dtsCategory);
        return ResponseUtil.ok();
    }
    /**
     * 商品类目的删除
     */
    @PostMapping("delete")
    public Object delete(@RequestBody DtsCategory dtsCategory){
        dtsCategoryService.delete(dtsCategory);
        return ResponseUtil.ok();
    }
}
